This set of scripts are intended for the priors and flat versions of the PREMUP paradigm. We need to select below here which version to look at.
# Initialize
strong_acc <- matrix(data=NA, nrow=40+100, ncol=max(exp.p$which_sub))
weak_acc <- matrix(data=NA, nrow=40+35, ncol=max(exp.p$which_sub))
flat_acc <- matrix(data=NA, nrow=40+30, ncol=max(exp.p$which_sub))
# temp <- NA
# Initialize plot
# par(mfrow=c(exp.p$nSubs/2,4), oma=c(0,0,0,0)) # Subplots
# Loop over subjects
for(cSub in exp.p$which_sub){
# Get subject code
sub_code <- paste("sub-", sprintf("%03d", cSub), sep="")
# Get one subject's data
sub_data <- subset(x = learning, subset = participant == cSub) # Data
load(paste(cleaned_dir, "../../data/BIDS/", sub_code,"/", sub_code, "_params.RData", sep="")) # Parameters
# Get cummulative accuracy split by scenes
for (cScn in seq(1,6, by=2)){
cumm_acc <- cumsum(sub_data$trial_acc_manual[sub_data$scn_cat==cScn])
cumm_acc2 <- cumsum(sub_data$trial_acc_manual[sub_data$scn_cat==cScn+1])
cumm_acc <- cumm_acc / c(1:length(cumm_acc)) # Cummulative accuracy
cumm_acc2 <- cumm_acc2 / c(1:length(cumm_acc2)) # Cummulative accuracy
# Get current scene's info
curr_scn_cond <- unique(sub_data$scn_condition[sub_data$scn_cat==cScn])
curr_scn_cond_label <- p$scn_cont[curr_scn_cond]
# Store average perfromance
if(curr_scn_cond_label==0.9){
strong_acc[1:length(cumm_acc),cSub] <- rowMeans(cbind(cumm_acc, cumm_acc2))
}else if(curr_scn_cond_label==0.7) {
weak_acc[1:length(cumm_acc),cSub] <- rowMeans(cbind(cumm_acc, cumm_acc2))
}else{
flat_acc[1:length(cumm_acc),cSub] <- rowMeans(cbind(cumm_acc, cumm_acc2))
}
# Plot
plot(cumm_acc, ylim = c(0,1), xlim = c(0,length(cumm_acc)),xaxt="n", col="pink",
main = paste(curr_scn_cond_label, "contingency"))
text(labels=sub_code, x=0, y=1.2, xpd=T)
abline(h=.5, col = "red", lty = 2); abline(h=curr_scn_cond_label ,col = "green")
abline(v=0, col = "black", lty = 4);abline(v=40, col = "black", lty = 4);
xtick<-c(0,40)
axis(side=1, at=xtick, labels = FALSE)
text(x=xtick, par("usr")[3],
labels = c("Refresh", "Enc starts"), pos = 1, xpd = TRUE)
points(seq(1, length(cumm_acc2)), cumm_acc2, col = "blue")
}
}
par(mfrow=c(1,3)) # Subplots
prior_label=c("Strong prior", "Weak prior", "Flat prior")
p$scn_cont <-c(.9, .7, .5)
for(cCond in c(1:3)){
if(cCond==1){
### Strong prior
data_mean=rowMeans(strong_acc, na.rm = T)
data_sd=rowSds(strong_acc, na.rm = T)
ind=c(1:140, 140:1)
}else if(cCond==2){
data_mean=rowMeans(weak_acc, na.rm = T)
data_sd=rowSds(weak_acc, na.rm = T)
ind=c(1:75, 75:1)
}else{
data_mean=rowMeans(flat_acc, na.rm = T)
data_sd=rowSds(flat_acc, na.rm = T)
ind=c(1:70, 70:1)
}
# SD
xx <- data_mean+data_sd
yy <- data_mean-data_sd
# Plot
plot(data_mean, ylim = c(0,1), xlim = c(0,length(data_mean)),xaxt="n", col="blue",
main = prior_label[cCond])
polygon(x= ind, y = c((xx),rev(yy)), col = rgb(.5,.5,.8,.3), border = "red")
# Format
abline(h=max(p$scn_cont[cCond]) ,col = "green")
abline(h=.5, col = "red", lty = 2);
abline(v=0, col = "black", lty = 4);abline(v=40, col = "black", lty = 4);
xtick<-c(0,40)
axis(side=1, at=xtick, labels = FALSE)
text(x=xtick, par("usr")[3],
labels = c("Refresh", "Encoding starts"), pos = 1, xpd = TRUE)
}
# Get encoding data
learning <- encoding
# Initialize
strong_acc <- matrix(data=NA, nrow=100, ncol=max(exp.p$which_sub))
weak_acc <- matrix(data=NA, nrow=35, ncol=max(exp.p$which_sub))
flat_acc <- matrix(data=NA, nrow=30, ncol=max(exp.p$which_sub))
# temp <- NA
# Initialize plot
# par(mfrow=c(exp.p$nSubs/2,4), oma=c(0,0,0,0)) # Subplots
# Loop over subjects
for(cSub in exp.p$which_sub){
# Get subject code
sub_code <- paste("sub-", sprintf("%03d", cSub), sep="")
# Get one subject's data
sub_data <- subset(x = learning, subset = participant == cSub) # Data
load(paste(cleaned_dir, "../../data/BIDS/", sub_code,"/", sub_code, "_params.RData", sep="")) # Parameters
# Get cummulative accuracy split by scenes
for (cScn in seq(1,6, by=2)){
cumm_acc <- cumsum(sub_data$trial_acc_manual[sub_data$scn_cat==cScn])
cumm_acc2 <- cumsum(sub_data$trial_acc_manual[sub_data$scn_cat==cScn+1])
cumm_acc <- cumm_acc / c(1:length(cumm_acc)) # Cummulative accuracy
cumm_acc2 <- cumm_acc2 / c(1:length(cumm_acc2)) # Cummulative accuracy
# Get current scene's info
curr_scn_cond <- unique(sub_data$scn_condition[sub_data$scn_cat==cScn])
curr_scn_cond_label <- p$scn_cont[curr_scn_cond]
# Store average perfromance
if(curr_scn_cond_label==0.9){
strong_acc[1:length(cumm_acc),cSub] <- rowMeans(cbind(cumm_acc, cumm_acc2))
}else if(curr_scn_cond_label==0.7) {
weak_acc[1:length(cumm_acc),cSub] <- rowMeans(cbind(cumm_acc, cumm_acc2))
}else{
flat_acc[1:length(cumm_acc),cSub] <- rowMeans(cbind(cumm_acc, cumm_acc2))
}
}
}
par(mfrow=c(1,3)) # Subplots
prior_label=c("Strong prior", "Weak prior", "Flat prior")
p$scn_cont <-c(.9, .7, .5)
for(cCond in c(1:3)){
if(cCond==1){
### Strong prior
data_mean=rowMeans(strong_acc, na.rm = T)
data_sd=rowSds(strong_acc, na.rm = T)
ind=c(1:100, 100:1)
}else if(cCond==2){
data_mean=rowMeans(weak_acc, na.rm = T)
data_sd=rowSds(weak_acc, na.rm = T)
ind=c(1:35, 35:1)
}else{
data_mean=rowMeans(flat_acc, na.rm = T)
data_sd=rowSds(flat_acc, na.rm = T)
ind=c(1:30, 30:1)
}
# SD
xx <- data_mean+data_sd
yy <- data_mean-data_sd
# Plot
plot(data_mean, ylim = c(0,1), xlim = c(0,length(data_mean)),xaxt="n", col="blue",
main = prior_label[cCond])
polygon(x= ind, y = c((xx),rev(yy)), col = rgb(.5,.5,.8,.3), border = "red")
# Format
abline(h=max(p$scn_cont[cCond]) ,col = "green")
abline(h=.5, col = "red", lty = 2)
#abline(v=0, col = "black", lty = 4);abline(v=40, col = "black", lty = 4);
xtick<-c(0,40)
axis(side=1, at=xtick, labels = FALSE)
#text(x=xtick, par("usr")[3]
#labels = c("Refresh", "Encoding starts"), pos = 1, xpd = TRUE)
}
#write.csv(learning_data, file = paste(output_dir, sub_code, "_task-learning_cleaned.csv", sep=""))
#write.csv(rating_data, file = paste(output_dir, sub_code, "_task-rating_cleaned.csv", sep=""))